package com.eshop.modules.shop.domain;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.eshop.domain.BaseDomain;

@TableName("system_group_data")
public class SystemGroupData extends BaseDomain
{
    @TableId
    private Integer id;
    private String groupName;
    private String value;
    private Integer sort;
    private Integer status;
    
    public void copy(final SystemGroupData source) {
        BeanUtil.copyProperties((Object)source, (Object)this, CopyOptions.create().setIgnoreNullValue(true));
    }
    
    public static SystemGroupDataBuilder builder() {
        return new SystemGroupDataBuilder();
    }
    
    public Integer getId() {
        return this.id;
    }
    
    public String getGroupName() {
        return this.groupName;
    }
    
    public String getValue() {
        return this.value;
    }
    
    public Integer getSort() {
        return this.sort;
    }
    
    public Integer getStatus() {
        return this.status;
    }
    
    public void setId(final Integer id) {
        this.id = id;
    }
    
    public void setGroupName(final String groupName) {
        this.groupName = groupName;
    }
    
    public void setValue(final String value) {
        this.value = value;
    }
    
    public void setSort(final Integer sort) {
        this.sort = sort;
    }
    
    public void setStatus(final Integer status) {
        this.status = status;
    }
    
    public SystemGroupData(final Integer id, final String groupName, final String value, final Integer sort, final Integer status) {
        this.id = id;
        this.groupName = groupName;
        this.value = value;
        this.sort = sort;
        this.status = status;
    }
    
    public SystemGroupData() {
    }
    
    public static class SystemGroupDataBuilder
    {
        private Integer id;
        private String groupName;
        private String value;
        private Integer sort;
        private Integer status;
        
        SystemGroupDataBuilder() {
        }
        
        public SystemGroupDataBuilder id(final Integer id) {
            this.id = id;
            return this;
        }
        
        public SystemGroupDataBuilder groupName(final String groupName) {
            this.groupName = groupName;
            return this;
        }
        
        public SystemGroupDataBuilder value(final String value) {
            this.value = value;
            return this;
        }
        
        public SystemGroupDataBuilder sort(final Integer sort) {
            this.sort = sort;
            return this;
        }
        
        public SystemGroupDataBuilder status(final Integer status) {
            this.status = status;
            return this;
        }
        
        public SystemGroupData build() {
            return new SystemGroupData(this.id, this.groupName, this.value, this.sort, this.status);
        }

        @Override
        public String toString() {
            return "SystemGroupDataBuilder{" +
                    "id=" + id +
                    ", groupName='" + groupName + '\'' +
                    ", value='" + value + '\'' +
                    ", sort=" + sort +
                    ", status=" + status +
                    '}';
        }
    }
}
